#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>

//int main()
//{
//	printf("exec Before\n");
//	printf("I am process,PID:%d\n",getpid());
//	sleep(5);
//
//	execl("/usr/bin/top","top",NULL);
//	exit(1);
//	printf("exec End\n");
//	return 0;
//}
//int main()
//{
//	pid_t id = fork();
//	if(id == 0)
//	{
// 	 printf("exec Before\n");
//	 printf("I am child process,PID:%d\n",getpid());
//	 sleep(3);
//
//	 execl("/usr/bin/ls","ls","-l",NULL);
//	 exit(1);
//	 printf("exec End\n");
//	}
//	sleep(1);
//	pid_t rid = waitpid(id,NULL,0);
//	if(rid>0)
//	{
//		printf("wait success!\n");
//	}
//	return 0;
//
//}

//int main()
//{
//	printf("exec Before\n");
//	printf("I am process,PID:%d\n",getpid());
//	sleep(3);
//	putenv("NewENV=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
//	char* const argv[]=
//	{
//		(char*)"ls",
//		(char*)"-l",
//		(char*)"-a",
//		NULL
//	};
//    //execv("/usr/bin/ls",argv);
//	//execlp("ls","ls","-l","-a",NULL);
//	execl("./mytest","mytest",NULL);
//	exit(1);
//	printf("exec End\n");
//	return 0;
//}
//
int main()
{
	printf("I am process,PID:%d\n",getpid());
	sleep(3);
	char* const env[]=
	{
		(char*)"1+1=2",
		(char*)"2+2=3",
		NULL
	};
	pid_t id = fork();
	if(id ==0)
	{
	printf("exec Before\n");
	execle("./mytest","mytest",NULL,env);
	exit(1);
	printf("exec End\n");
	}
	pid_t rid = waitpid(id,NULL,0);
	
	return 0;
}
